%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%W  Update                      GAP Maintenance
%%
%%
%Y  Copyright (C)  2005,  Lehrstuhl D für Mathematik,  RWTH Aachen,  Germany
%%
%%  This file is intended to list the changes that will be published with
%%  the next GAP release.
%%
%%  The information is used for producing:
%%  - the update announcement
%%  - additions to `tst/bugfix.tst'
%%  - an HTML page that lists known bugs and intended new features
%%  - an entry in the `Changes' manual describing the new release.
%%
%%  This file contains two sections: 
%%  - changes in the stable branch (e.g. to make GAP 4.5.7 after GAP 4.5.6)
%%  - changes in the default branch (e.g. to make GAP 4.6 after GAP 4.5.17)
%% 
%%  How to make sure that the change goes into right place:
%%
%%  - for adding a change in the stable branch, call 'hg update stable-4.5',
%%    then just copy one of the templates below to the end of the stable
%%    branch section and enter the relevant information.
%%
%%  - for adding a change in the default branch, call 'hg update default',
%%    then just copy one of the templates below to the end of the default
%%    branch section and enter the relevant information.
%%
%%  DO NOT enter descriptions of any changes in the default branch into
%%  the version of this file from the stable branch !!!
%%
%%  Formal rules for this file, to allow simple parsing by a script:
%%          - lines starting with `%' are comments and are ignored
%%          - lines starting with `!' describe the type of information
%%            in the following lines until the next `!'-line (therefore, 
%%            information must be entered *after* and not *in* `!'-lines)
%%          - each entry must be finished with an `! End' line, otherwise
%%            the order of entries is irrelevant
%%          - the text behind the `!' is case and whitespace insensitive
%%
%%  To describe the change, you need to fill in least the following fields
%%  in one of the templates below: "Date", "Changed by", "Type of Change",
%%  "Description" and "Changeset". Also, fill in "Reported by", if
%%  applicable, and, if relevant, provide some code in test file format 
%%  in "Test Code".
%%

%%%%%%% Template with explanatory comments (the shorter one is below) %%%%%%%
% [Required] When the change was checked in, format 'yyyy/mm/dd':
! Date

% [Required] Initials should suffice here:
! Changed by

% [Optional] Only if applicable:
! Reported by

% [Required] Choose one or more entries and/or add new ones; 
% but always use either the 'Fix:' or the 'New:' prefix
! Type of Change
Fix: wrong result
Fix: inappropriate error message
Fix: infinite loop
Fix: efficiency issue
Fix: crash
New: extended functionality
New: new functionality
New: improved documentation

% [Required] For the description use plain text
! Description

% [Optional, but highly desirable] If possible, provide some code 
% in test file format which allows to check if a change was applied 
% to an installation. Provide input and output, including prompts, 
% exactly as in a GAP session.
! Test Code

% [Optional] If possible, provide some information about a temporary fix, 
% workaround etc., maybe with a link to some longer description or a file 
% with some code. Use plain text here.
! Prefetch

% [Required] Describe here how to find out where the changes were made. 
% - for immediate changes in the stable branch, specify changed file(s).
%   Adding the entry describing the change should be a part of the same 
%   commit as the change itself, so that adding/merging/backing out the 
%   change fix will keep dev/Update in sync. If you will need to revisit 
%   this change before the next GAP release, please update also its entry 
%   in dev/Update file, specifying the full hexadecimal changeset id 
%   (160-bit identifier) of the previous change(s).
% - for changes made in feature branches, the change to dev/Update should
%   be made in the same feature branch, so it will be merged into default
%   or stable branch together with actual changes and reverting the merge
%   will also revert the dev/Update file. Specify here the name of the 
%   feature branch and possibly the full hexadecimal changeset id (160-bit 
%   identifier) of the latest revision of the code in this branch before 
%   the merge. 
% Since by default, Mercurial displays only the first 12 characters of
% the full hexadecimal changeset id, to see the full version, use --debug 
% option, e.g. 'hg --debug log'. Do not use the short revision number 
% since it makes sense only within your clone.
! Changeset

% [Required] Finish your entry with this:
! End


%%%%%%%  short template without comments %%%%%%%
! Date

! Changed by

! Reported by

! Type of Change
Fix: wrong result
Fix: inappropriate error message
Fix: infinite loop
Fix: efficiency issue
Fix: crash
Fix: internal data corruption
New: extended functionality
New: new functionality
New: improved documentation

! Description

! Test Code

! Prefetch

! Changeset

! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% CHANGES IN THE STABLE BRANCH 
% (SCROLL DOWN FOR CHANGES IN THE DEFAULT BRANCH WHICH ARE NOT IN STABLE)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% add entries here using one of the templates above

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date  
2012/09/03
! Changed by
SL
! Reported by
Volker Braun
! Type of Change
Fix: inappropriate error message
! Description
Old variable still remained in assert causing errors in a 
debugging compilation.
! Changeset
1b55d1e9a11827c708a051e2da1ab1bb2edcabed
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date 
2012/08/31
! Changed by 
SL
! Reported by 
Volker Braun
! Type of Change
Fix: crash
! Description
Crash in garbage collection following call to AClosVec for a GF(2) code
! Test Code
gap> x:=[[Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,Z(2)^0,0*Z(2),0*Z(2),0*Z(2),Z(2)^0],[0*Z(2),Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,Z(2)^0,Z(2)^0,Z(2)^0,0*Z(2),0*Z(2),Z(2)^0,0*Z(2),0*Z(2),Z(2)^0],[0*Z(2),0*Z(2),Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),Z(2)^0,0*Z(2),0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,0*Z(2),Z(2)^0],[0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0],[0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),0*Z(2)],[0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,0*Z(2)],[0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0],[0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,Z(2)^0,Z(2)^0,0*Z(2),0*Z(2)],[0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,Z(2)^0,Z(2)^0,0*Z(2)],[0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,Z(2)^0,Z(2)^0],[0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,Z(2)^0,0*Z(2),0*Z(2),0*Z(2),Z(2)^0,Z(2)^0,0*Z(2)],[0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,0*Z(2),Z(2)^0,Z(2)^0,Z(2)^0,0*Z(2),0*Z(2),0*Z(2),Z(2)^0,Z(2)^0]]*Z(2)^0;;
gap> P:=AClosestVectorDriver(x, GF(2),Z(2)*[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],11,0, true);; 
gap> GASMAN("collect");;
! Changeset
a152a3005c78c985438ca39ce54ec3ae81ffa3da
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date  
2012/08/12
! Changed by 
SL
! Reported by 
Stefan Kohl
! Type of Change
Fix: wrong result
! Description
Very large (more than 1024 digit) integers were not being coded correctly
in function bodies unless the integer limb size was 16 bits. 
! Test Code
gap> f := function() return
> 100000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 000000000000000000000000000000000000000000000000000000000000000000000000000000\
> 00000000; end;
function(  ) ... end
gap> f();
100000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000
gap> 
! Changeset
856c728998c47646a77075bed81d4a11ce3b0f0c
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/08/13
! Changed by
AK
! Reported by 
Attila Egri-Nagy.
! Type of Change
New: extended functionality
! Description
Added the method for Iterator for PositiveIntegers by Attila Egri-Nagy.
! Test Code
gap> First(PositiveIntegers,IsPrime);
2
! Changeset
0337a6335cc8789643c6e823c0575e9c89c0d855
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/08/20
! Changed by
SK
! Type of Change
New: improved documentation
! Description
Removed outdated statements from the documentation of StructureDescription,
which now non-ambiguosly states that StructureDescription is not an 
isomorphism invariant: non-isomorphic groups can have the same string 
value, and two isomorphic groups in different representations can produce 
different strings.
! Changeset
83b8bd7b051ad9fa39def34abf42faf8b056fd59
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/08/30
! Changed by
FL
! Type of Change
New: extended functionality
! Description
The argument of SaveWorkspace can now start with "~/" which is expanded to
the users home directory (which should be case for all commands that get
a filename as argument).
! Test Code
gap> SaveWorkspace("~/blablaWSpace");
true
gap> Exec("rm -f ~/blablaWSpace");
! Changeset
9bd8469bc7a0651733ba702638ef08aa7e616b16
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/01
! Changed by
FL
! Reported by
Benjamin Lorenz
! Type of Change
Fix: missing case
! Description
The environment variable PAGER is now correctly interpreted when it
contains the full path to the pager program.
Furthermore, if the external pager 'less' is found from the environment
it is made sure that the option '-r' is used. Same for 'more -f'.
! Changeset
9bd13818d61b7a606a12a44af38e3288d74bc805
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/01
! Changed by
AH
! Reported by
Aiichi Yamasaki
! Type of Change
Fix: wrong result
! Description
Fixed a bug in PermliftSeries
! Test Code
! Changeset
b715d8a52e1c23385703f377049bbd43fea4bab2
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/01
! Changed by
AH
! Reported by
Leonard Soicher
! Type of Change
Fix: wrong result
! Description
Fixed discarder function in lattice computation to distinguish 
general and zuppo discarder
! Test Code
! Changeset
d10d37ef94ac72266ec206822f2f2f71dc96295f
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/06
! Changed by
MH
! Reported by
Multiple people
! Type of Change
Fix: crash
! Description
GAP would crash when parsing certain syntactically invalid code. This crash
was introduced by commit a5b5807c964d, which this fix simply reverts.
Note that the bad commit was meant to "Get rid of one break loop related bug."
However, it is unclear what that bug might have been. So it seems better
to fix the known crash; and then fix the original bug, if it reappears.
! Test Code
gap> str := Concatenation("function()\n",
> "local e, v;\n",
> "for e in [] do\n",
> "    v := rec(a := [];);\n",
> "od;\n"
> );
"function()\nlocal e, v;\nfor e in [] do\n    v := rec(a := [];);\nod;\n"
gap> s:=InputTextString(str);
InputTextString(0,66)
gap> Read(s);
Syntax error: ) expected in stream line 4
    v := rec(a := [];);
                    ^
Syntax error: end expected in stream line 5
od;
 ^
! Changeset
src/read.c
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date  
2012/06/24
! Changed by 
JS
! Type of Change
Fix: inappropriate error message
! Description
The GL and SL constructors did not correctly handle GL(filter,dim,ring).
! Test Code
gap> GL(IsMatrixGroup,3,GF(2));;
gap> SL(IsMatrixGroup,3,GF(2));;
gap> 
! Changeset
fefb2b193323b84c0126c227edeca4090e1a6496
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date  
2012/08/12
! Changed by 
JS
! Type of Change
Fix: wrong result
! Description
The names of two primitive groups of degree 64 were incorrect.
! Test Code
gap> PrimitiveGroup(64,53);
2^6:(S3 x GL(3, 2))
gap> PrimitiveGroup(64,64);
2^6:PGL(2, 7)
gap> 
! Changeset
0e9c002683eeee9e1a2408c20a5f92282ebb3d1d
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/07
! Changed by
MH
! Reported by
Max Horn
! Type of Change
Fix: inappropriate error message
! Description
This \in method for groups handled by a nice monomorphism sometimes could
produce an error in situations where it should return false. This only
happened when using SeedFaithfulAction to influence how NiceMonomorphism
builds the nice monomorphims for a matrix groups.
! Test Code
gap> m1:=PermutationMat( (1,2), 5, GF(5) );;
gap> m2:=PermutationMat( (3,4), 5, GF(5) );;
gap> n:=PermutationMat( (1,4,5), 5, GF(5) );;
gap> G:=Group(m1, m2);;
gap> SetSeedFaithfulAction(G,rec(points:=[m1[1],m1[3]], ops:=[OnPoints,OnPoints]));
gap> n in G;
false
! Changeset
lib/oprt.gi
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/11
! Changed by
FL
! Reported by
Sebastian Gutsche
! Type of Change
Fix: inappropriate error message
! Description
We now allow overloading of a loaded help book by another one. Only a
warning is printed and no error is raised. This makes sense if a book
of a not loaded package is loaded in a workspace and GAP is started with 
a root path that contains a newer version. 
! Test Code
gap> old := ShallowCopy(HELP_KNOWN_BOOKS[2][1]);;
gap> HELP_KNOWN_BOOKS[2][1][3] := 
> Concatenation(HELP_KNOWN_BOOKS[2][1][3], "blabla");;
gap> CallFuncList(HELP_ADD_BOOK, old);
#I  Overwriting already installed help book 'tutorial'.
! Prefetch
! Changeset
83bedd12f9fac9a3471f16ca1fa1b4e1fac7f15d
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/11
! Changed by
FL
! Reported by
! Type of Change
New: new functionality
! Description
Changed kernel tables such that list access functionality for
T_SINGULAR objects can be installed by methods on GAP level.
! Test Code
! Prefetch
! Changeset
05bb1bcfa830a49364c1eb14362cdf5f3821d6f5
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/12
! Changed by
FL
! Reported by
James Mitchell
! Type of Change
Fix: crash
! Description
Fixed and improved command line editing without readline support.

A combination of UP and DOWN arrows could lead to a segfault, this is fixed.
In case of saved history, UP after starting GAP yields last stored line.
Now using user preference "HistoryMaxLines" when storing and saving history.
! Test Code
! Prefetch
! Changeset
2b501bcbd938aa3d2f7f4b98c22e8923b2037dc2
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/12
! Changed by
LB (via AK)
! Reported by
Volker Braun
! Type of Change
Fix: crash
! Description
Fixed a bug in floats code resulting in crash on sparc-sun-solaris 
(a bag had a pointer not divisible by 8, while on SPARC one can only
store doubles at memory locations divisible by 8).
! Test Code
! Prefetch
! Changeset
macfloat.h in revision 5fef892e243879b047dc48638a0af38e44514235
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/09/13
! Changed by
TB (via AK)
! Reported by
Kevin Watkins
! Type of Change
Fix: wrong result
! Description
Fixed a method for coefficients which, after Gaussian elimination, did not
check that the coefficients actually lie in the left-acting-domain of the
vector space. This could lead to a wrong answer in a vector space
membership test.
! Test Code
gap> Sqrt(5)*IdentityMat(2) in VectorSpace(Rationals,[IdentityMat(2)]);
false
! Prefetch
! Changeset
vspcmat.gi
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
2012/08/20
! Changed by
MN
! Reported by
Thomas Breuer
! Type of Change
Fix: wrong result
! Description
Remove wrong PrintObj method to fix delegations. This implements the
documented behaviour of method delegations for PrintObj/ViewObj/Display.
! Test Code
gap> fam := NewFamily("XYZsFamily");;
gap> DeclareCategory("IsXYZ",IsObject);
gap> type := NewType(fam,IsXYZ and IsPositionalObjectRep);;
gap> o := Objectify(type,[]);;
gap> InstallMethod(String,[IsXYZ],function(o) return "XYZ"; end);
gap> o;
XYZ
gap> Print(o,"\n");
XYZ
gap> String(o);
"XYZ"
! Prefetch
! Changeset
89d3f6e6bb2f
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
14/09/2012
! Changed by
FL
! Reported by
! Type of Change
New: improved documentation
! Description
Better description of the use of user preferences, in particular
WriteGapIniFile.
! Test Code
! Prefetch
! Changeset
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% CHANGES IN THE DEFAULT BRANCH WHICH ARE NOT IN STABLE
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Date
14/9/12
! Changed by
SL
! Reported by

! Type of Change
New: new functionality

! Description

Added a kernel function MEET_BLIST which returns
true if the two blists have true in any common position
and false otherwise. Useful for representing subsets of 
a fixed set by blists.

! Test Code
gap> a := BlistList([1,2,3],[1]);;
gap> b := BlistList([1,2,3],[2]);;
gap> c := BlistList([1,2,3],[2,3]);;
gap> MEET_BLIST(a,b);
false
gap> MEET_BLIST(a,c); 
false
gap> MEET_BLIST(b,c);
true
gap> MEET_BLIST(a,a);
true

! Prefetch

! Changeset

! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


! Date
2012/08/14
! Changed by
AK
! Type of Change
New: improved output
! Description
Replaced ViewObj method for fields by ViewString method to improve the way
how polynomial rings over algebraic extenstions of fields are displayed.
! Test Code
gap> R:=PolynomialRing(GF(5),"mu");;
gap> mu:=Indeterminate(GF(5));;
gap> T:=AlgebraicExtension(GF(5),mu^5-mu+1);;
gap> A:=PolynomialRing(T,"x");
<field of size 3125>[x]
! Changeset
898bd2acdf458c91a0ab9aae8d87bccf5f859174
! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%  short template without comments %%%%%%%
! Date 28 Aug 2012

! Changed by Steve

! Reported by

! Type of Change
New: new functionality

! Description
Added a function MEET_BLIST that returns true if two Blists have a true in
the same place.

! Test Code

gap> l1 := BlistList([1..6],[1,3,5]);;
gap> l2 := BlistList([1..6],[2,4,6]);;
gap> MEET_BLIST(l1,l2);
false
gap> l2 := BlistList([1..6],[2,4,5]);;
gap> MEET_BLIST(l1,l2);
true
gap> MEET_BLIST([],[]);
false


! Prefetch

! Changeset
37e4d5767b47

! End
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% add entries here using one of the templates above


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%END
